package ningbo.OOP;

import sun.applet.Main;

/**
 * @Author 宁铂
 * @Date 2021/7/8 21:11
 * @Version 1.0
 */
public class TestBlock {
    /** 测试代码块 */
    public static void main(String[] args) {
        Teacher teacher1 = new Teacher();
        Teacher teacher2 = new Teacher("Java培优");

        teacher2.sleep();
    }
}

class Teacher{
    String subject;
    String country;

    /** 创建构造代码块:
     *  位置:类里方法外
     *  执行顺序:创建对象时执行,而且优先于构造方法执行
     *  作用:提取所有代码块的共性功能
     * */
    {
        country = "大中华";
        System.out.println("构造代码块");
    }

    //创建无参构造
    public Teacher() {
        System.out.println("我是无参构造"+country);
    }

    //创建全参构造
    public Teacher(String subject) {
        this.subject = subject;
        System.out.println("我是全参构造"+country);
    }

    public void sleep(){
        /** 创建局部代码块
         *  位置: 方法里
         *  执行顺序: 调用方法时执行
         *  作用: 用于控制变量的使用范围,变量只能在局部使用,出了局部代码块就会失效
         * */
        {
            System.out.println("我是局部代码块");
        }
    }

}